package adapter_jss;

import java.util.*;

/*
 * 우리가 최종적으로 쓰고자하는 것은 goodMethod() 입니다. 그 녀석은 인자로 Enumeration을 받고 있지요. 그러나 우리가 가지고 있는 것은 Iterator입니다. 
 * IteratorToEnumeration 클래스는 Iterator를 받아서 Enumeration 으로 변경시켜줍니다. 
AtoB의 형태를 가지는 Adapter는 A를 멤버변수로 가지고 B를 구현합니다.
 * */
public class Test {

	public static void goodMethod(Enumeration<String> enu){
		while(enu.hasMoreElements()){
			System.out.println(enu.nextElement());
		}
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List<String> list = new ArrayList<String>();
		list.add("지니웍스");
		list.add("Kevin parker");
	    list.add("David Blaine");
	   // 구성을 통한 방법
	    Enumeration<String> ite = new IteratorToEnumeration<String>(list.iterator());
	    Test.goodMethod(ite);
	    //상속을 이용한 방법
	    Test.goodMethod(IterToEnuMethod.iteratorToEnumeration(list.iterator()));
		
	}

}
